struct A {
  int a;
  int b:30;
  int c;
} __attribute__((aligned(128)));
 
struct A g[3];
 
__attribute__ ((noinline))
void foo() {
  struct A p;
  for (p.c = 0; p.c < 3; p.c += 1) {
    struct A tmp = {123, 223, 323};
    g[p.c] = tmp;
  }
}
 
int check_same(struct A a1, struct A a2) {
  if (a1.a != a2.a || a1.b != a2.b || a1.c != a2.c) {
    return 0;
  }
  return 1;
}
 
int main() {
  foo();
  struct A tmp = {123, 223, 323};
  if (check_same(g[0], tmp) == 0 || check_same(g[1], tmp) == 0 || check_same(g[2], tmp) == 0) {
    abort();
  }
  return 0;
}
